home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGMISC / PCSSP.LZH / PC-SSP.ZIP / MATOPS.ZIP / MADD.FOR < prev    next >
Text File  |  1985-11-29  |  3KB  |  88 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE MADD
  5. C
  6. C        PURPOSE
  7. C           ADD TWO MATRICES ELEMENT BY ELEMENT TO FORM RESULTANT
  8. C           MATRIX
  9. C
  10. C        USAGE
  11. C           CALL MADD(A,B,R,N,M,MSA,MSB)
  12. C
  13. C        DESCRIPTION OF PARAMETERS
  14. C           A - NAME OF INPUT MATRIX
  15. C           B - NAME OF INPUT MATRIX
  16. C           R - NAME OF OUTPUT MATRIX
  17. C           N - NUMBER OF ROWS IN A,B,R
  18. C           M - NUMBER OF COLUMNS IN A,B,R
  19. C           MSA - ONE DIGIT NUMBER FOR STORAGE MODE OF MATRIX A
  20. C                  0 - GENERAL
  21. C                  1 - SYMMETRIC
  22. C                  2 - DIAGONAL
  23. C           MSB - SAME AS MSA EXCEPT FOR MATRIX B
  24. C
  25. C        REMARKS
  26. C           NONE
  27. C
  28. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  29. C           LOC
  30. C
  31. C        METHOD
  32. C           STORAGE MODE OF OUTPUT MATRIX IS FIRST DETERMINED. ADDITION
  33. C           OF CORRESPONDING ELEMENTS IS THEN PERFORMED.
  34. C           THE FOLLOWING TABLE SHOWS THE STORAGE MODE OF THE OUTPUT
  35. C           MATRIX FOR ALL COMBINATIONS OF INPUT MATRICES
  36. C                         A                B                 R
  37. C                      GENERAL          GENERAL          GENERAL
  38. C                      GENERAL          SYMMETRIC        GENERAL
  39. C                      GENERAL          DIAGONAL         GENERAL
  40. C                      SYMMETRIC        GENERAL          GENERAL
  41. C                      SYMMETRIC        SYMMETRIC        SYMMETRIC
  42. C                      SYMMETRIC        DIAGONAL         SYMMETRIC
  43. C                      DIAGONAL         GENERAL          GENERAL
  44. C                      DIAGONAL         SYMMETRIC        SYMMETRIC
  45. C                      DIAGONAL         DIAGONAL         DIAGONAL
  46. C
  47. C     ..................................................................
  48. C
  49.       SUBROUTINE MADD(A,B,R,N,M,MSA,MSB)
  50.       DIMENSION A(1),B(1),R(1)
  51. C
  52. C        DETERMINE STORAGE MODE OF OUTPUT MATRIX
  53. C
  54.       IF(MSA-MSB) 7,5,7
  55.     5 CALL LOC(N,M,NM,N,M,MSA)
  56.       GO TO 100
  57.     7 MTEST=MSA*MSB
  58.       MSR=0
  59.       IF(MTEST) 20,20,10
  60.    10 MSR=1
  61.    20 IF(MTEST-2) 35,35,30
  62.    30 MSR=2
  63. C
  64. C        LOCATE ELEMENTS AND PERFORM ADDITION
  65. C
  66.    35 DO 90 J=1,M
  67.       DO 90 I=1,N
  68.       CALL LOC(I,J,IJR,N,M,MSR)
  69.       IF(IJR) 40,90,40
  70.    40 CALL LOC(I,J,IJA,N,M,MSA)
  71.       AEL=0.0
  72.       IF(IJA) 50,60,50
  73.    50 AEL=A(IJA)
  74.    60 CALL LOC(I,J,IJB,N,M,MSB)
  75.       BEL=0.0
  76.       IF(IJB) 70,80,70
  77.    70 BEL=B(IJB)
  78.    80 R(IJR)=AEL+BEL
  79.    90 CONTINUE
  80.       RETURN
  81. C
  82. C        ADD MATRICES FOR OTHER CASES
  83. C
  84.   100 DO 110 I=1,NM
  85.   110 R(I)=A(I)+B(I)
  86.       RETURN
  87.       END
  88.